import random
import string
from user.Address import Address

class User:
    def __init__(self):                                                         # 初始化user
        self.account = ''.join(random.choices(string.digits, k=8))              # 随机生成8位账号，string.digits，提供数字字符集"0123456789"作为生成基础，
        # 导入 random和string模块                                                 # random.choices()：从字符集中可重复抽取指定数量字符（此处k=8）
                                                                                # ''.join()：将生成的字符列表拼接为完整字符串
        self.account_type = 0  # 默认为0，可根据需要修改
        self.name = ""
        self.password = 0      # 默认为0，需设置为6位数字
        self.address = None    # None与"" 定义不相同，因为None类型为NoType而 ""类型为字符串
        self.balance = 0
        self.bank_name = ""

    def set_info(self, name, password, address, balance, bank_name):
        self.name = name                                                       # 仅用于接受用户输入的信息，不存account因为为自主生成非用户输入
        self.password = int(password)                                          # 确保密码为6位数字
        self.address = Address(*address)                                       # *address作用 将address转化为位置参数，传入Address中
        self.balance = int(balance)
        self.bank_name = bank_name
